package com.triones.ljr.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.triones.ljr.entity.dto.ComplaintCategoryDO;
import com.triones.ljr.entity.dto.ComplaintDO;
import com.triones.ljr.entity.vo.ComplaintCategoryVO;
import com.triones.ljr.entity.vo.ComplaintVO;

import java.util.List;

/**
 * 投诉建议
 */
public interface ComplaintService {

    /**
     * 新增
     * @param dto
     */
    void add(ComplaintDO dto);

    /**
     * 获取列表（分页）
     * @param dto
     * @param pageQuery
     * @return
     */
    TableDataInfo<ComplaintVO> pageList(ComplaintDO dto, PageQuery pageQuery);

    /**
     * 获取列表
     * @param dto
     * @return
     */
    List<ComplaintVO> selectComplaintList(ComplaintDO dto);

    /**
     * 删除
     * @param ids
     * @return
     */
    boolean deleteByIds(Long[] ids);

    /**
     * 获取详情
     * @param id
     * @return
     */
    ComplaintVO getInfo(Long id);

    /**
     * 分类-列表（分页）
     * @param dto
     * @param pageQuery
     * @return
     */
    TableDataInfo<ComplaintCategoryVO> categoryPageList(ComplaintCategoryDO dto, PageQuery pageQuery);

    /**
     * 分类-新增
     * @param dto
     * @return
     */
    boolean addCategory(ComplaintCategoryDO dto);

    /**
     * 分类-编辑
     * @param dto
     * @return
     */
    boolean editCategory(ComplaintCategoryDO dto);

    /**
     * 分类-详情
     * @param id
     * @return
     */
    ComplaintCategoryVO getCategoryInfo(Long id);

    /**
     * 分类-删除
     * @param id
     * @return
     */
    boolean removeCategory(Long id);

    /**
     * 分类-名称唯一性校验
     * @param dto
     * @return
     */
    boolean checkCategoryNameUnique(ComplaintCategoryDO dto);

    /**
     * 分类-列表
     * @return
     */
    List<ComplaintCategoryVO> getCategoryList();

    /**
     * 流转
     * @param dto
     * @return
     */
    boolean circulation(ComplaintDO dto);
}
